package cn.iune.backcenter.author;

import java.text.ParseException;
import java.util.List;

import com.alibaba.fastjson.JSONObject;

import cn.iune.common.base.IBizDataIface;

public interface ISaOporgService extends IBizDataIface {

	SaOporg getByID(String sID);

	SaOporg getByFID(String sFID);

	List<SaOporg> getByPersonID(String sPersonID);

	void insert(SaOporg obj);

	void delete(SaOporg obj);

	void update(SaOporg obj);


	//获取主要的人员成员关系（组织关系）
//	SaOporg getMainPersonMember(SaOpperson person);

	//获取所有的人员成员关系（组织关系）
	List<SaOporg> getPersonMembers(String personID);

	//获取特定的人员成员关系（组织关系）
	List<SaOporg> getPersonMembers(String personID, String orgID);

	//获取父节点
	SaOporg getParent(SaOporg org);

	//获取最近一级公司
	SaOporg getCompany(SaOporg org);

	//获取当前组织的所有上级组织（包括自己）,但是现定于紧邻的上级公司
	List<SaOporg> getSuperiors(SaOporg obj);

	List<String> getSuperiorIDs(SaOporg obj);

	//获取所有的人员组织关系，包含人员成员关系
	List<SaOporg> getPersonOrgs(String personID);

	//获取所有的人员组织关系，包含人员成员关系，限定的组织内
	List<SaOporg> getPersonOrgs(String personID, String orgID);

	List<String> getRootIDs(String sCreatorFID);

	List<String> getChildIDs(String fParent);

	//获取ids
	List<String> getIDsByParent(String fParent, String enterpriseNo);

	//更新sortNo
	int updateSortNo(SaOporg fs, String sortNo);

	//排序
	int sortGroupInfo(String parentID, List<String> ids/*,List<Integer> versions*/);

	List<SaOporg> getChildren(String fParent);

	void delete(JSONObject data);

	List<SaOporg> getOgnsBysCreatorFID(String sCreatorFID);

	List<SaOporg> getOgnsByPersonID(String personID);

	List<SaOporg> getByPersonOrgID(String sPersonID, String sOrgID);

	//添加人员成员
//	void addPersonMember(JSONObject data);

	void addPersonMember(String orgID, String personID, String personCode, String personName, String sCreatorFID);

	JSONObject save(JSONObject object) throws ParseException;






}